package com.yami.shop.webservice.common.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yami.shop.webservice.common.model.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;


public interface CopyrightService {

    /**
     * 商户登记存证注册
     * @param foreignDto
     * @return
     */
    public JSONObject foreign(RegisterForeignDto foreignDto);
    /**
     * 文件上传
     * @param attachmentUploadDto
     * @return
     */
    public JSONObject fileUpload(AttachmentUploadDto attachmentUploadDto, File file);

    /**
     * 新增著作权人
     * @param ownerDto
     * @return
     */
    public JSONObject addOwner(OwnerDto ownerDto);

    /**
     * 查询著作权人列表
     * @param ownersListDto
     * @return
     */
    public JSONObject getOwnersList(OwnersListDto ownersListDto);

    /**
     * 查询通过id著作权人
     * @param ownersByIdDto
     * @return
     */
    public JSONObject getOwnersById(OwnersByIdDto ownersByIdDto);


    /**
     * 字典查询
     * @param dictItemDto
     * @return
     */
    public JSONArray getDictByType(DictItemDto dictItemDto);

    /**
     * 登记-新增登记作品信息
     * @param worksInstDto
     * @return
     */
    public JSONObject workSave(WorksInstDto worksInstDto);

    /**
     * 登记-更新登记作品信息
     * @param worksInstDto
     * @return
     */
    public JSONObject workUpdate(WorksInstDto worksInstDto);

    /**
     * 登记-查询登记作品列表
     * @param workInstPageQueryDto
     * @return
     */
    public JSONObject getWorksInstPage(WorkInstPageQueryDto workInstPageQueryDto);

    /**
     * 登记-根据受理号查询登记作品
     * @param workByAcceptNoDto
     * @return
     */
    public JSONObject getWorkByAcceptNo(WorkByAcceptNoDto workByAcceptNoDto);

    /**
     * 登记-根据受理号查询审核进度
     * @param workByAcceptNoDto
     * @return
     */
    public JSONObject getWorkProgressByAcceptNo(WorkByAcceptNoDto workByAcceptNoDto);

    /**
     * 登记-下载作品存证证书
     * @param workByAcceptNoDto
     * @return
     */
    public JSONObject depositWorksCertificate(WorkByAcceptNoDto workByAcceptNoDto);

    /**
     * 登记-下载作品登记证书
     * @param workByAcceptNoDto
     * @return
     */
    public JSONObject registrationWorksCertificate(WorkByAcceptNoDto workByAcceptNoDto);

    /**
     * 登记-获取作品登记数据
     * @param workByAcceptNoDto
     * @return
     */
    public JSONObject worksRegistrationData(WorkByAcceptNoDto workByAcceptNoDto);
}
